﻿using DAL;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace BEL
{
    public class Calificacion
    {
        #region atributos
        private int _idcalificacion;            
        private Comercio _comercio;       
        private int _clienteid;
        private int _numerocalificacion;
        #endregion

        #region properties
        public int NumeroCalificacion
        {
            get { return _numerocalificacion; }
            set { _numerocalificacion = value; }
        }

        public int ClienteId
        {
            get { return _clienteid; }
            set { _clienteid = value; }
        }

        public int IdCalificacion
        {
            get { return _idcalificacion; }
            set { _idcalificacion = value; }
        }

        public Comercio Comercio
        {
            get { return _comercio; }
            set { _comercio = value; }
        }
        #endregion

        #region constructores
        public Calificacion(int calificacionid, Comercio comercio, int cliente, int calificacion)
        {
            _idcalificacion = calificacionid;
            _comercio = comercio;
            _clienteid = cliente;
            _numerocalificacion = calificacion;   

        }

        public Calificacion(Comercio comercio, int cliente, int calificacion)
        {            
            _comercio = comercio;
            _clienteid = cliente;
            _numerocalificacion = calificacion;
        }

        public Calificacion()
        {
            
        }
        #endregion

        #region funciones

        public static Boolean AltaCalificacion(Comercio comercio, Cliente cliente, int puntuacion) {
            DALCalificacion dalcalif = new DALCalificacion();
            List<SqlParameter> parametros = new List<SqlParameter>();
            parametros.Add(new SqlParameter("@Calificacion", puntuacion));
            parametros.Add(new SqlParameter("@CliId", cliente.ClienteId));
            parametros.Add(new SqlParameter("@ComId", comercio.ComercioId));
            Boolean retorno = dalcalif.AltaCalificacion(parametros);
            return retorno;       
        }

        public static int buscarPromedio(Comercio comercio) {             
            int ret = DALCalificacion.buscarPromedio(comercio.ComercioId);
            return ret;
        }

        public static Boolean ValidarCalificacion(Comercio comercio, Cliente cliente) {
            List<Comentario> retorno = new List<Comentario>();
            DALCalificacion dal = new DALCalificacion();
            SqlDataReader dr = dal.ValidadCalificacion(comercio.ComercioId,cliente.ClienteId);
            Boolean ret;
            if (dr.Read())
            {
                ret = false;
            }
            else {
                ret = true;
            }
            return ret;
        }
        #endregion
    }
}
